# Linux insmod(8) completion                               -*- shell-script -*-

_insmod()
{
    local cur prev words cword
    _init_completion || return

    # do filename completion for first argument
    if ((cword == 1)); then
        _filedir '@(?(k)o?(.[gx]z|.zst))'
    else # do module parameter completion
        COMPREPLY=($(compgen -W "$(PATH="$PATH:/sbin" modinfo \
            -p ${words[1]} 2>/dev/null | cut -d: -f1)" -- "$cur"))
    fi
} &&
    complete -F _insmod insmod insmod.static

# ex: filetype=sh
